// 定义包名为 com.jlnk.androiduidemo
package com.jlnk.androiduidemo;

// 导入Android开发所需的库和组件
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.jlnk.androiduidemo.Adapter.StudentArrayAdapter; // 自定义的适配器类
import com.jlnk.androiduidemo.database.MySQLDataHelper; // 数据库帮助类
import com.jlnk.androiduidemo.entity.User; // 实体类，代表用户信息

import java.util.List; // 导入List接口

// 定义一个继承自 AppCompatActivity 的类 StudentActivity
public class StudentActivity extends AppCompatActivity {

    // 定义 UI 组件的成员变量
    private Button mButtonStudents;
    private Button mButtonCourses;
    private Button mButtonProfile;
    private ListView listView;
    private MySQLDataHelper dbHelper; // 数据库帮助类实例
    private List<User> users; // 存储用户信息的列表
    private StudentArrayAdapter userArrayAdapter; // 适配器实例

    // onCreate 方法是每个Activity生命周期的开始，用于初始化界面和数据
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); // 调用父类的 onCreate 方法
        setContentView(R.layout.activity_student); // 设置布局文件

        // 初始化数据库帮助类实例
        dbHelper = new MySQLDataHelper(this);
        listView = findViewById(R.id.listView); // 获取ListView组件

        // 从数据库获取所有用户信息，并设置给ListView的适配器
        users = dbHelper.getAllUsers();
        userArrayAdapter = new StudentArrayAdapter(this, users);
        listView.setAdapter(userArrayAdapter);

        // 初始化学生按钮，并设置点击事件监听器
        mButtonStudents = findViewById(R.id.buttonStudents);
        mButtonStudents.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(StudentActivity.this, "点击了学生按钮", Toast.LENGTH_SHORT).show(); // 显示Toast消息
            }
        });

        // 初始化课程按钮，并设置点击事件监听器，用于跳转到课程界面
        mButtonCourses = findViewById(R.id.buttonCourses);
        mButtonCourses.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent courseIntent = new Intent(StudentActivity.this, CourseActivity.class); // 创建Intent
                startActivity(courseIntent); // 启动CourseActivity
            }
        });

        // 初始化个人资料按钮，并设置点击事件监听器
        mButtonProfile = findViewById(R.id.buttonProfile);
        mButtonProfile.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String studentId = getCurrentStudentId(); // 获取当前学生的学号
                if (studentId != null) {
                    // 如果学号存在，创建Intent并传递学号，跳转到个人信息界面
                    Intent profileIntent = new Intent(StudentActivity.this, InformationActivity.class);
                    profileIntent.putExtra("studentId", studentId);
                    startActivity(profileIntent);
                } else {
                    // 如果学号不存在，提示用户重新登录
                    Toast.makeText(StudentActivity.this, "未能获取学号，请重新登录", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }

    // 获取当前登录学生的学号
    private String getCurrentStudentId() {
        SharedPreferences sharedPreferences = getSharedPreferences("user_session", MODE_PRIVATE); // 获取SharedPreferences对象
        return sharedPreferences.getString("studentId", null); // 从SharedPreferences获取学号，如果不存在则返回null
    }

}